#define  _CRT_SECURE_NO_WARNINGS
class Solution {
public:
    // int minSubArrayLen(int target, vector<int>& nums) {
    //     int left = 0,right = 0,sum = nums[0],len = 0,n = nums.size();
    //     while(1)
    //     {
    //         if(sum >= target)
    //         {
    //             if(left == right)
    //             {
    //                 return 1;
    //             }
    //             else
    //             {
    //                 if(len)
    //                     len = min(len,right-left+1);
    //                 else 
    //                     len = right-left+1;
    //                 sum -= nums[left];
    //                 left++;
    //             }
    //         }   
    //         else
    //         {
    //             if(right < n - 1)
    //             {
    //                 right++;
    //                 sum += nums[right];
    //             }
    //             else
    //             {
    //                 return len;
    //             }
    //         }         
    //     }
    // }
    int minSubArrayLen(int target, vector<int>& nums)
    {
        int left = 0, right = 0, len = 0, sum = 0, n = nums.size();
        while (right < n)
        {
            sum += nums[right];
            while (sum >= target)
            {
                if (len)len = min(len, right - left + 1);
                else len = right - left + 1;
                sum -= nums[left];
                left++;
            }
            right++;
        }
        return len;
    }
};